package com.sx.water.modules.dao;

import com.sx.water.modules.entity.IntegerTimeRainingBo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * @description: 气象接口Dao
 * @author: taoxi
 * @create: 2018-11-01 16:04
 **/
@Mapper
@Component
public interface IntegerTimeRainingDao {

    /**
     * 获取表最大时间 eg: 18110509
     *
     * @param tableSuffix 表后缀 eg:201811
     */
    String selectMaxtime(@Param(value = "tableSuffix") String tableSuffix);

    /**
     * @return 面雨量
     */
    List<Map<String, Object>> selectSurfaceRainFall(IntegerTimeRainingBo bo);

    /**
     * 查询 气象/水文 站分别的总数
     *
     * @return num1: 气象站总数 num2:水文站总数
     */
    Map<String, Integer> selectGetCount();

    /**
     * @return 获取降水量信息 1/3/6/12/24
     */
    List<Map<String, Object>> selectGetRainInfo(IntegerTimeRainingBo bo);

    /**
     * @return 获取降水量信息 1/3/6/12/24  超过阀值的站点信息
     */
    List<Map<String, Object>> selectGetRainInfo2(IntegerTimeRainingBo bo);

    //-------------------近12小时逐小时最大雨强

    /**
     * @return 雨强
     */
    List<Map<String, Object>> selectRainStrong(IntegerTimeRainingBo bo);

    /**
     * @return 雨强视图
     */
    List<Map<String, Object>> selectRainViwe(IntegerTimeRainingBo bo);

    //---------------------面/站点雨量逐小时信息

    /**
     * @param bo
     * @return 县 面雨量 逐小时
     */

    List<Map<String, Object>> selectFaceRainOnHour(IntegerTimeRainingBo bo);

    /**
     * @param bo
     * @return 县 面雨量 未满逐小时
     */

    List<Map<String, Object>> selectFaceRainOnMinute(IntegerTimeRainingBo bo);

    /**
     * @param bo
     * @return 雨量 逐小时  按站点
     */

    List<Map<String, Object>> selectFaceRainOnHourByStation(IntegerTimeRainingBo bo);

    /**
     * @param bo
     * @return 雨量 未满逐小时 按站点
     */

    List<Map<String, Object>> selectFaceRainOnMinuteByStation(IntegerTimeRainingBo bo);

    //---------定时任务
    List<Map<String, Object>> selectGetRainInfoQuartz(IntegerTimeRainingBo bo);


    //------------------------------------监测----------------------------

    /**
     * 实况
     * @param bo
     * @return
     */
    List<Map<String, Object>> selectRainMonitorLive(IntegerTimeRainingBo bo);

    /**
     * 近 30分钟 与 近 1小时
     * @param bo
     * @return
     */
    List<Map<String, Object>> selectRainMonitorLiveBy30(IntegerTimeRainingBo bo);


    /**
     * 近 小时(3 6 12 24 )
     * @param bo
     * @return
     */
    List<Map<String, Object>> selectRainMonitorHour(IntegerTimeRainingBo bo);

    /**
     * 近 小时(36 48 60 72 )
     * @param bo
     * @return
     */
    List<Map<String, Object>> selectRainMonitorHourMore(IntegerTimeRainingBo bo);



    //----------待修改----------

    /**
     * 08 20 点以来
     * @param bo
     * @return
     * 58657
     */
    List<Map<String, Object>> selectRainMonitorHourAfter(IntegerTimeRainingBo bo);
    String selectGetMaxTime(String stationId);
    /**
     * 整 点以来
     * @param bo
     * @return
     */
    List<Map<String, Object>> selectRainMonitorInterger(IntegerTimeRainingBo bo);


    /**
     * 站点信息
     */
    List<Map<String, Object>> selectRainStationInfo();


    /**
     * 站点24小时 趋势（风向/风速/温度/雨量） 分钟数据
     * @return
     */
    List<Map<String, Object>> selectRainStation24HourTrend(IntegerTimeRainingBo bo);
    /**
     * 站点24小时 趋势（风向/风速/温度/雨量） 小时数据
     * @return
     */
    List<Map<String, Object>> selectRainStation24HourTrendInteger(IntegerTimeRainingBo bo);

    /**
     * 站点24小时 趋势 站点最新时间
     * @param stationId
     * @return
     */
    String selectGetMaxTime24Hour(String stationId);




}
